#ifndef _edaParSearchWrapper_ph_
#define _edaParSearchWrapper_ph_

#include "edaDefine.h"
#include "edaSearch.h"

parclass edaParSearchWrapper
{
 public:
#ifdef _EDA_DISTRUBUTED_
  edaParSearchWrapper() @{ od.power(1); };
  edaParSearchWrapper(edaBuffer &_buf) @{ od.power(1); };
#else
  edaParSearchWrapper();
  edaParSearchWrapper(edaBuffer &_buf);
#endif
  ~edaParSearchWrapper();
  
  void setAlgorithm( edaBuffer &_buf );
  
  async conc void search( edaBuffer &_buf_in, edaBuffer &_buf_out );
  async conc void search( edaBuffer &_buf_in );
  sync mutex void setSolution( edaBuffer &_buf );
  sync mutex void getSolution( edaBuffer &_buf_out );
  sync seq void getCurrentStatus(int &_status);
  
 private:
  edaSearch *searchAlgorithm;
  int status;
  edaSolution *sol;

  classuid(1001);
};

#endif
